<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
	<head>
		<title>Parallelization experiments</title>
		<meta content="text/html; charset=iso-8859-7" http-equiv="Content-Type">
	</head>
	<body>

		<h3>Preface</h3>
		
		<p>
		Parallelized computer hardware is becoming increasingly widespread nowadays, not only in modern PCs, but also in other modern programmable devices, like game-consoles, smart-phones, tablets, etc. This fact often makes non-parallel software entities, (like non-parallel programs, libraries, algorithms, etc) to appear inferior in terms of performance, especially when compared to parallelized counterparts, on typical modern hardware configurations.
		</p>

		<p>
		However, I believe that there are still excellent opportunities for improving the performance of existent non-parallel software, by selectively and carefully parallelizing crucial software parts. Consequently, it seemed to me very interesting to test in practice how well this parallelization process can actually work, by performing some parallelization experiments, in which I am trying to parallelize non-parallel, open-source software. This repository is the place where you can find all the material needed for reproducing, verifying, studying and reusing this experimental work of mine. 
		</p>
		
		<p>
		For a more detailed discussion of the objectives and rationales of this project, please consider reading the full <a href="Intro.htm">introduction</a> of the project.
		</p>

	<hr/>

		<h3>Summaries of parallelization experiments</h3>

		<h4>1. Parallelization of some FreeImage image-transformations</h4>

		<table border="1" cellspacing="0"><tbody>
		
		<tr>
		<td><strong>Parallelization Target:</strong></td>
		<td><a href="http://freeimage.sourceforge.net/index.html">FreeImage</a> image-transformations <br/> 
		(<em>Histogram</em>, <em>HorizontalFlip</em>, <em>Rotate90</em>, <em>Rotate180</em>, <em>Rotate270</em>) </td>
		</tr>
		
		<tr>
		<td><strong>Parallel programming model:</strong></td>
		<td><a href="http://en.wikipedia.org/wiki/OpenMP">OpenMP</a></td>
		</tr>

		<tr>
		<td><strong>Implementation Language:</strong></td> <td>C++</td>
		</tr>

		<tr>
		<td><strong>Build requirements:</strong></td> <td>MS Visual Studio 2005</td>
		</tr>

		<tr>
		<td><strong>OS compatibility:</strong></td> <td>Windows (XP/Vista/7)</td>
		</tr>

		<tr>
		<td><strong>Max Speedups:</strong></td>
		<td><em>Histogram:</em> X%, <em>HorizontalFlip:</em> X%, <br/>
		<em>Rotate90:</em> X%, <em>Rotate180:</em> X%, <em>Rotate270:</em> X%</td>
		</tr>
		
		<tr>
		<td><strong>Detals:</strong></td> <td><a href="Intro.htm">Detailed report</a></td>
		</tr>
		
		</tbody></table>
		
		<h4>2. CppCkeck parallelization</h4>

		<table border="1" cellspacing="0"><tbody>
		
		<tr>
		<td><strong>Parallelization Target:</strong></td>
		<td><a href="http://cppcheck.sourceforge.net/">CppCheck</a> static analysis tool</td>
		</tr>
		
		<tr>
		<td><strong>Parallel programming model:</strong></td>
		<td><a href="http://en.wikipedia.org/wiki/OpenMP">OpenMP</a></td>
		</tr>

		<tr>
		<td><strong>Implementation Language:</strong></td> <td>C++</td>
		</tr>

		<tr>
		<td><strong>Build requirements:</strong></td> <td>MS Visual Studio 2005, GCC 4.X.X (makefile)</td>
		</tr>

		<tr>
		<td><strong>OS compatibility:</strong></td> <td>MS-Windows (XP/Vista/7), Linux</td>
		</tr>

		<tr>
		<td><strong>Max Speedups:</strong></td>
		<td><em>Windows:</em> X%, <em>Linux:</em> X%
		</tr>
		
		<tr>
		<td><strong>Detals:</strong></td> <td><a href="Intro.htm">Detailed report</a></td>
		</tr>
		
		</tbody></table>

	</body>
</html>

